Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


README.md a9f342f1126bedb8befd468f267b0d7ccf6db5e4 (a9f342f1) Text, 12.17 KB

Reticulum MeshChatX

│ [!WARNING] Backup your reticulum-meshchat folder before using! MeshChatX will attempt to
│ auto-migrate whatever it can from the old database without breaking things, but it is best to
│ keep backups.

Contact me for any issues or ideas:

T282828
LXMF: 7cc8d66b4f6a0e0e49d34af7f6077b5a

![CI](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/ci.yml)
![Tests](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/tests.yml)
![Build](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/build.yml)
![Docker](https://git.quad4.io/RNS-Things/MeshChatX/actions/workflows/docker.yml)

A Reticulum MeshChat fork from the future.

<video src="https://strg.0rbitzer0.net/raw/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>

This project is separate from the original Reticulum MeshChat project, and is not affiliated with the original project.

Goal

To provide everything you need for Reticulum, LXMF, and LXST in one beautiful and feature-rich application.

• Desktop app (Linux, Windows, macOS)
• Self-host on your server easily with or without containers
• Mobile app (one can dream)
• Reliable, secure, fast and easy to use.

Note on macOS: You will need to manually build or use containers since I do not have a macOS machine or runner.

Quick Start (Docker - Recommended)

The easiest way to get MeshChatX running is using Docker. Our official image is multi-arch and supports T383838linux/amd64 and T383838linux/arm64 (Raspberry Pi, etc.).

T282828
T8b949e# Pull and run the latest image
docker pull git.quad4.io/rns-things/meshchatx:latest

T8b949e# Run MeshChatX in a Docker container
docker run -d Tffea00\
--nameTff7b72=meshchatx Tffea00\
-p T79c0ff8000:8000 Tffea00\
-v Te6edf3$PWD/storage:/app/storage Tffea00\
T8b949e# --network=host \ # Uncomment for autointerface support
git.quad4.io/rns-things/meshchatx:latest

T8b949e# Or use Docker Compose for an even easier setup
docker compose up -d


Check releases for pre-built binaries (AppImage, DEB, EXE) if you prefer standalone apps. (coming soon)

Major Features

Full LXST Support: Custom voicemail, phonebook, contact sharing, and ringtone support.
Interface Discovery and auto-connecting - Discover interfaces, auto-connect or connect to trusted ones, map them all!
Multi-Identity: Switch between multiple Reticulum identities seamlessly.
Modern UI/UX: A completely redesigned, intuitive interface.
Integrated Maps: OpenLayers with MBTiles support for offline maps.
Security: Read more about it in the Security section.
Offline Docs: Access Reticulum documentation without an internet connection.
Expanded Tools: Includes dozens of more tools.
Page Archiving: Built-in crawler and browser for archived pages offline.
Banishment: Banish LXMF users, Telephony, and NomadNet Nodes.
i18n: Support for English, German, Italian, and Russian.
Advanced Diagnostic Engine: Mathematically grounded crash recovery using Active Inference and Information Theory.

Screenshots

<details>
<summary>Telephony & Calling</summary>

Phone
Active Call
Call Ended
Voicemail
Ringtone Settings


</details>

<details>
<summary>Networking & Visualization</summary>

Network Visualiser


</details>

<details>
<summary>Page Archives</summary>

Archives Browser
Viewing Archived Page


</details>

<details>
<summary>Tools & Identities</summary>

Tools
Identity Management


</details>

Pipx / Global Installation

If you prefer to install MeshChatX globally using T383838pipx, pip or uv, you can do so directly from the repository. However, you must specify the path to your built frontend files using the T383838--public-dir flag or T383838MESHCHAT_PUBLIC_DIR environment variable, as the static files are not bundled with the source code. The release .whl packages include the built frontend files and also there is a seperate frontend zip to grab and use.

1. Install MeshChatX:

T282828
pipx install git+https://git.quad4.io/RNS-Things/MeshChatX

2. Run with Frontend Path:
T282828
T8b949e# Replace /path/to/MeshChatX/meshchatx/public with your actual path
meshchat --public-dir /path/to/MeshChatX/meshchatx/public


Manual Installation (From Source)

If you want to run MeshChatX from the source code locally:

1. Clone the repository:

T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX
Tffa657cd MeshChatX


2. Build the Frontend:
Requires Node.js and pnpm.

T282828
corepack Tffa657enable
pnpm install
pnpm run build-frontend


3. Install & Run Backend:
Requires Python 3.10+ and Poetry.
T282828
pip install poetry
poetry install
poetry run meshchat --headless --host T79c0ff127.0.0.1


Cross-Platform Building (Linux to Windows)

If you are on Linux and want to build the Windows T383838.exe and installer locally, you can use Wine.

1. Install Windows Python and Git inside Wine:

T282828
T8b949e# Download Python installer
wget https://www.python.org/ftp/python/3.13.1/python-3.13.1-amd64.exe
T8b949e# Install Python to a specific path
wine python-3.13.1-amd64.exe /quiet Te6edf3InstallAllUsersTff7b72=T79c0ff1 Te6edf3TargetDirTff7b72=C:Tffea00\Python313 Te6edf3PrependPathTff7b72=T79c0ff1

T8b949e# Download Git installer
wget https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/Git-2.52.0-64-bit.exe
T8b949e# Install Git (quietly)
wine Git-2.52.0-64-bit.exe /VERYSILENT /NORESTART


2. Install Build Dependencies in Wine:

T282828
wine C:/Python313/python.exe -m pip install cx_Freeze poetry
wine C:/Python313/python.exe -m pip install -r requirements.txt

3. Run the Build Task:

T282828
T8b949e# Build only the Windows portable exe
Te6edf3WINE_PYTHONTff7b72=Ta5d6ff"wine C:/Python313/python.exe" task build-exe-wine

T8b949e# Or build everything (Linux + Windows) at once
Te6edf3WINE_PYTHONTff7b72=Ta5d6ff"wine C:/Python313/python.exe" task build-electron-all-wine


Configuration

MeshChatX can be configured via command-line arguments or environment variables.

┌───────────────┬──────────────────────┬───────────┬──────────────────────┐
│ Argument │ Environment Variable │ Default │ Description │
├───────────────┼──────────────────────┼───────────┼──────────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Web server address │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Web server port │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Disable HTTPS │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Don't launch browser │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Enable basic auth │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Data directory │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ - │ Frontend files path │
└───────────────┴──────────────────────┴───────────┴──────────────────────┘

Development

We use Task for automation.

┌──────────────────────────────┬────────────────────────────────────────────────┐
│ Task │ Description │
├──────────────────────────────┼────────────────────────────────────────────────┤
│ T383838task install │ Install all dependencies │
│ T383838task run │ Run the application │
│ T383838task dev │ Run the application in development mode │
│ T383838task lint │ Run all linters (Python & Frontend) │
│ T383838task lint-python │ Lint Python code only │
│ T383838task lint-frontend │ Lint frontend code only │
│ T383838task format │ Format all code (Python & Frontend) │
│ T383838task format-python │ Format Python code only │
│ T383838task format-frontend │ Format frontend code only │
│ T383838task test │ Run all tests │
│ T383838task test:cov │ Run tests with coverage reports │
│ T383838task test-python │ Run Python tests only │
│ T383838task test-frontend │ Run frontend tests only │
│ T383838task build │ Build frontend and backend │
│ T383838task build-frontend │ Build only the frontend │
│ T383838task wheel │ Build Python wheel package │
│ T383838task compile │ Compile Python code to check for syntax errors │
│ T383838task build-docker │ Build Docker image using buildx │
│ T383838task run-docker │ Run Docker container using docker-compose │
│ T383838task build-appimage │ Build Linux AppImage │
│ T383838task build-exe │ Build Windows portable executable │
│ T383838task build-exe-wine │ Build Windows portable (Wine cross-build) │
│ T383838task build-electron-linux │ Build Linux Electron app │
│ T383838task build-electron-windows │ Build Windows Electron apps │
│ T383838task build-electron-all-wine │ Build all Electron apps (Wine cross-build) │
│ T383838task android-prepare │ Prepare Android build │
│ T383838task android-build │ Build Android APK │
│ T383838task build-flatpak │ Build Flatpak package │
│ T383838task clean │ Clean build artifacts and dependencies │
└──────────────────────────────┴────────────────────────────────────────────────┘

Security

ASAR Integrity (Stable as of Electron 39)
• Built-in automatic integrity checks on all files (frontend and backend)
• HTTPS by default (automated locally generated certs)
• Redundant CORS protection (loading.html, python backend server, electron main.js)
• Updated dependencies and daily scanning (OSV)
• Container image scanning (Trivy)
• SBOM for dependency observability and tracking
• Extensive testing and fuzzing.
• Rootless docker images
• Pinned actions and container images (supply chain security and deterministic builds)

Advanced Diagnostic Engine

MeshChatX includes a uniquely sophisticated crash recovery system designed for the unpredictable hardware environments.

Probabilistic Active Inference: Uses Bayesian-inspired heuristics to determine root causes (e.g., OOM, RNS config issues, LXMF storage failures) with up to 99% confidence.
Mathematical Grounding: Quantifies system instability using Shannon Entropy and KL-Divergence, providing a numerical "disorder index" at the time of failure.
Manifold Mapping: Identifies "Failure Manifolds" across the entire vertical stack—from Kernel and Python versions to RNS interface state and LXMF database integrity.

All running locally on your own hardware and it might not be perfect, but it will only get better. The idea is to provide you the help to possibly fix it when you cannot reach me.

Credits

Liam Cottle - Original Reticulum MeshChat
Marqvist - Reticulum, LXMF, LXST


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────